/*
 * @(#)DeletedMonitoringAction.java $version 2012-8-10
 * 
 * Copyright 2012 NADOSTAR Gruop. All rights Reserved.
 * NADOSTAR PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package com.nadostar.iims.monitoring.action;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.nadostar.extensions.CommonUtil;
import com.nadostar.extensions.pagination.PaginationInfo;
import com.nadostar.extensions.util.DataMap;
import com.nadostar.iims.model.MonitoringParamModel;
import com.nadostar.iims.monitoring.bo.MonitoringBO;

/**
 * The Class DeletedMonitoringAction.
 * 
 * @author Lixing
 *
 */
@Controller
@RequestMapping("/bbs/deletedMonitoring")
public class DeletedMonitoringAction {
	private static Log log = LogFactory.getLog(DeletedMonitoringAction.class);
	
	private static PaginationInfo paginate = null;
	
	@Autowired
	private MonitoringBO monitoringBO = null;
	
	@ModelAttribute
	public void modelPaginateAttr(HttpServletRequest request) {
		if(paginate == null) {
			paginate = new PaginationInfo("default", request, 0);
		}
	}
	
	@RequestMapping(method = RequestMethod.GET)
	public String execute()  {
		return "bbs/deletedMonitoringList";
	}
	
	@RequestMapping(value = "/search", method = RequestMethod.GET)
	public @ResponseBody Map<String, ? extends Object> search(
			@RequestParam("page") int page,
			@RequestParam("startDate") String startDate,
			@RequestParam("endDate") String endDate,
			@RequestParam("productNo") String productNo,
			@RequestParam("bbsTypeCd") String bbsTypeCd,
			@RequestParam("wrtrMbrId") String wrtrMbrId) {
		Map<String, Object> jsonMap = new HashMap<String, Object>();
		
		MonitoringParamModel model = new MonitoringParamModel();
		model.setStartDate(startDate);
		model.setEndDate(endDate);
		model.setProductNo(productNo);
		model.setBbsTypeCd(bbsTypeCd);
		model.setWrtrMbrId(wrtrMbrId);
		
		log.debug("### DeletedMonitoringAction.search...");
		
		int total = monitoringBO.getDeletedMonitoringListCount(model);
		paginate.setPage(page);
		paginate.setTotalRows(total);
		int offset = CommonUtil.calcOffset(page, paginate.getPageSize());
		
		List<DataMap> monitoringList = monitoringBO.getDeletedMonitoringList(model, offset, paginate.getPageSize());
		
		jsonMap.put("total", total);
		jsonMap.put("paginate", paginate.getPaginateMap());
		jsonMap.put("monitoringList", monitoringList);
		return jsonMap;
	}
}
